package co.edu.uniandes.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JOptionPane;

import co.edu.uniandes.services.IServicioPais;
import co.edu.uniandes.services.constantes.ConsultaConstantes;
import co.edu.uniandes.servicio.ServicioPais;
import co.edu.uniandes.servicio.lookup.ConexionBD;

/**
 * 
 * @author Rafael Guillermo Blanco Banquez <rafaelg.blancob@gmail.com>
 *
 */
public class PruebaConexionBD {

	public static void main(String[] args) {
		try {
			//Manera en que nos Conectamos a la Base de Datos
			Connection connection = ConexionBD.getInstance().getConection();		
			//Manera en que nos conectamos a cualquier servicio
			//ServicioUsuario Por medio de Interfaz IServicioUsuario
			//ServicioCiudad Por medio de Interfaz IServicioCiudad
			//ServicioEvento Por medio de Interfaz IServicioEvento
			//ServicioPais Por medio de Interfaz IServicioPais

			//Como Ejemplo nos conectamos al Servicio Pais
			IServicioPais servicioPais = ServicioPais.getInstance();


			//Ejecutamos el Metodo obtenerPais
			Vector<String> listaPaises = servicioPais.obtenerPais();
			for (String unPais : listaPaises) {
				System.out.println(unPais);
			}
			System.err.println("---------------------");
			//EJMEPLO DE COMO VAMOS A REALIZAR LA PERSISTENCIA
			//INSERT
			//Como la tabla Pais tiene solo dos Campos (id, nombre)
			//y el campo id en AutoIncremente cuando Insertamos un valor
			//solo debemos enviar los demas parametros SIN la incluir el ID
			//Los parametros se Manejar con el caracter ( ? ) ( signoPregunta )
			//Cada ? significa un parametro y cada parametro inicia con la pocision 1
			//Ose que si yo tengo lo siguientes "INSERT into CIUDAD (?,?,?,?)", Significa que esa tabla esta 
			//Compuesta por parametros, con sus respectivos Indices 1,2,3,4 
			//Por ejemplo
			//PREPARAMOS LA SENTENCIA A USAR
			PreparedStatement preparedStatement = connection.prepareStatement(
					ConsultaConstantes.INSERT_PAIS);
			//COLOCAMOS LOS VALORES			
			preparedStatement.setString(1, "Ciudad3");
			
			int numRegistrosModificados = preparedStatement.executeUpdate();			
			
			if(numRegistrosModificados > 0){
			
				System.out.println("Se insertaron "+numRegistrosModificados+" registros");
			
			}else{
			
				System.err.println("No se insertaron los registros");
			
			}
			preparedStatement.close();
		} catch (Exception e2) {
			e2.printStackTrace();
			JOptionPane.showMessageDialog(null,"Ocurrio un Error: "+e2.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
		}		
	}
}
